package com.iflytek.speech.mvw;

import java.util.List;

/**
 * 套件层接口
 */
public interface IMvwSession {

    public int init(String resPath);

    /**
     * 开启唤醒
     * @return
     */
    public int start(int scene);

    /**
     * 开启唤醒
     * @param listener 唤醒回调（ps：一个场景同时只能有一个回调）
     * @return
     */
    public int start(int scene, IvwSimpleListener listener);

    /**
     * 开启唤醒
     * @param listener 唤醒回调（ps：一个场景同时只能有一个回调）
     * @return
     */
    public int start(int scene, IvwSimpleListener listener, boolean isLocation);

    /**
     * 开启唤醒
     * @return
     */
    public int start(int scene, boolean isLocation);

    /**
     * 关闭唤醒
     * @return
     */
    public int stop(int scene);

    /**
     * 设置自定义参数
     * @param key
     * @param value
     * @return
     */
    public int setParams(String key, String value);

    /**
     * 设置唤醒词
     * @param scene 场景id
     * @param keyword 唤醒词 格式请参考套件的说明文档
     * @return
     */
    public int setKeywords(int scene, String keyword);

    /**
     * 设置配置文件默认唤醒词
     * @param scene 场景id
     * @return
     */
    public int setDefaultKeywords(int scene);

    /**
     * 选择语言
     * @param language
     * @return
     */
    public int setLanguage(int language);

    /**
     * 追加音频数据
     * @param dataBuffer 音频数据
     * @param length 音频长度
     * @param inputNum 输入录音路数（1 / 2 /4）
     */
    public int appendAudioData(byte[] dataBuffer, int length, int inputNum);

    /**
     * 反注册唤醒实例
     * @return
     */
    public int unInit();
}
